package com.raymond.client.session;

import io.netty.channel.Channel;

/**
 * @author :  raymond
 * @version :  V1.0
 * @date :  2022-10-27 18:05
 */
public interface ChannelSession {
    /**
     * 获取连接状态
     * @return 连接状态
     */
    int getState();

    /**
     * 连接是否开启
     * @return true 开启
     */
    boolean isOpen();

    /**
     * 获取关联的channel
     *
     * @return channel
     */
    Channel getChannel();

    /**
     * 连接是否关闭
     * @return true 已关闭
     */
    boolean isShutdown();

    /**
     * 关闭连接并释放资源
     * @return true 已关闭
     */
    void shutdown() throws InterruptedException;
}
